1. Field of the Invention
The present invention relates to a nonvolatile memory for storing multivalue data, and more particularly to a semiconductor nonvolatile memory with a read buffer circuit that can read multivalue data stored in memory cells using a simple configuration.
2. Description of the Related Art
Semiconductor nonvolatile memory, such as flash memory, consists of cell transistors having floating gates in the channel area that lies between the source and drain areas. Injection of an electrical charge into these floating gates causes a change in the threshold voltage of the cell transistors and thus records data. The recorded data is read using the difference between the threshold values of the cell transistors.
In a conventional nonvolatile memory, one-bit data is recorded using the state in which electrical charges are not accumulated in the floating gates (state in which the threshold voltage is low when the charge is an electron) and the state in which electrical charges are accumulated (state in which the threshold voltage is high when the charge is an electron). The state in which electrons are not accumulated in the floating gates is a state of data 1 recorded or a deleted state. Accumulation of electrons in the floating gates indicates a state in which data 0 has been recorded or a programming state.
Because semiconductor nonvolatile memory, such as flash memory, is small and stores data even when the power is turned off, it is widely used as an image and audio recording medium in equipment such as digital cameras. Greater storage capacity is being demanded but, as described above, in a conventional nonvolatile memory for normal use a cell transistor can only store one-bit (single value) data.
For this reason, the recording of multivalue data, such as 2 bits data, in cell transistors is being proposed. By controlling the electrical charge injected into floating gates, a plurality of threshold voltage states is achieved and multivalue data can be recorded. For example, when 4 value data (2 bits) is stored four threshold voltage states will be stored.
However, to read 2 bits data from a cell transistor, it is necessary to read the first bit of data and then read the second bit of data. Accordingly, a latch circuit that temporarily holds the two bits of data is required in the read buffer circuit for reading data recorded in the cell transistor.
Generally, a read buffer circuit is installed for each bit line and so it is necessary to simplify the read buffer circuit configuration as much as possible. However, as described above, with the plurality of data values stored in a cell transistor, when a plurality of latch circuits is installed in a read buffer circuit, the scale of the read buffer circuit increases and, from the point of view of integration, goes against the demand for greater capacity.
Furthermore, when programming (writing) multivalue cell transistors, a plurality of bits must be input and an electrical charge that corresponds to these bits must be injected into the floating gates. Here, it is preferable that the programming operation corresponding to the relationship between the plurality of bits and the multiple values is realized using a simple program circuit.